package com.lezhi.socialgram.model.moments;

import com.fasterxml.jackson.annotation.JsonIgnore;
import org.springframework.data.elasticsearch.annotations.Field;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * Created by daizhen on 2017/4/4.
 */
public class Timeline {
    private String momentId;

    private Integer mediaType;

    private Long userId;

    private List<Media> media_list;

    private String textContent;

    private List<String> subject_list;

    private List<Long> atSomeOne_list;

    private String location;

    private Double lat;

    private Double lon;

    private Integer isPublic;

    private Integer price;

    private Date createTime;

    private Long createTimezone;

    private Integer onTheTop;

    private String seenCount;

    private String likedCount;

    private String commentsCount;

    private String giftsCount;

    public Timeline() {
    }

    public Timeline(String momentId, Integer mediaType, Long userId, List<Media> media_list, String textContent, List<String> subject_list, List<Long> atSomeOne_list, String location, Double lat, Double lon, Integer isPublic, Integer price, Date createTime, Long createTimezone, Integer onTheTop, String seenCount, String likedCount, String commentsCount, String giftsCount) {
        this.momentId = momentId;
        this.mediaType = mediaType;
        this.userId = userId;
        this.media_list = media_list;
        this.textContent = textContent;
        this.subject_list = subject_list;
        this.atSomeOne_list = atSomeOne_list;
        this.location = location;
        this.lat = lat;
        this.lon = lon;
        this.isPublic = isPublic;
        this.price = price;
        this.createTime = createTime;
        this.createTimezone = createTimezone;
        this.onTheTop = onTheTop;
        this.seenCount = seenCount;
        this.likedCount = likedCount;
        this.commentsCount = commentsCount;
        this.giftsCount = giftsCount;
    }

    public String getMomentId() {
        return momentId;
    }

    public void setMomentId(String momentId) {
        this.momentId = momentId;
    }

    public Integer getMediaType() {
        return mediaType;
    }

    public void setMediaType(Integer mediaType) {
        this.mediaType = mediaType;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public List<Media> getMedia_list() {
        return media_list;
    }

    public void setMedia_list(List<Media> media_list) {
        this.media_list = media_list;
    }

    public String getTextContent() {
        return textContent;
    }

    public void setTextContent(String textContent) {
        this.textContent = textContent;
    }

    public List<String> getSubject_list() {
        return subject_list;
    }

    public void setSubject_list(List<String> subject_list) {
        this.subject_list = subject_list;
    }

    public List<Long> getAtSomeOne_list() {
        return atSomeOne_list;
    }

    public void setAtSomeOne_list(List<Long> atSomeOne_list) {
        this.atSomeOne_list = atSomeOne_list;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public Double getLat() {
        return lat;
    }

    public void setLat(Double lat) {
        this.lat = lat;
    }

    public Double getLon() {
        return lon;
    }

    public void setLon(Double lon) {
        this.lon = lon;
    }

    public Integer getIsPublic() {
        return isPublic;
    }

    public void setIsPublic(Integer isPublic) {
        this.isPublic = isPublic;
    }

    public Integer getPrice() {
        return price;
    }

    public void setPrice(Integer price) {
        this.price = price;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    @JsonIgnore
    public Long getCreateTimezone() {
        return createTimezone;
    }

    public void setCreateTimezone(Long createTimezone) {
        this.createTimezone = createTimezone;
    }

    public Integer getOnTheTop() {
        return onTheTop;
    }

    public void setOnTheTop(Integer onTheTop) {
        this.onTheTop = onTheTop;
    }

    public String getSeenCount() {
        return seenCount;
    }

    public void setSeenCount(String seenCount) {
        this.seenCount = seenCount;
    }

    public String getLikedCount() {
        return likedCount;
    }

    public void setLikedCount(String likedCount) {
        this.likedCount = likedCount;
    }

    public String getCommentsCount() {
        return commentsCount;
    }

    public void setCommentsCount(String commentsCount) {
        this.commentsCount = commentsCount;
    }

    public String getGiftsCount() {
        return giftsCount;
    }

    public void setGiftsCount(String giftsCount) {
        this.giftsCount = giftsCount;
    }

    @Override
    public String toString() {
        return "Timeline{" +
                "momentId='" + momentId + '\'' +
                ", mediaType=" + mediaType +
                ", userId=" + userId +
                ", media_list=" + media_list +
                ", textContent='" + textContent + '\'' +
                ", subject_list=" + subject_list +
                ", atSomeOne_list=" + atSomeOne_list +
                ", location='" + location + '\'' +
                ", lat=" + lat +
                ", lon=" + lon +
                ", isPublic=" + isPublic +
                ", price=" + price +
                ", createTime=" + createTime +
                ", createTimezone=" + createTimezone +
                ", onTheTop=" + onTheTop +
                ", seenCount='" + seenCount + '\'' +
                ", likedCount='" + likedCount + '\'' +
                ", commentsCount='" + commentsCount + '\'' +
                ", giftsCount='" + giftsCount + '\'' +
                '}';
    }
}
